import { SetMetadata } from '@nestjs/common';

/**
 * @description 操作日志装饰器
 * @param data 操作日志的核心配置，例如操作名称、类型、是否外部操作等。
 * @param dataKey 可选，指定如何提取响应或请求参数中的唯一标识符（如 ID）。
 *
 * @example
 * @LogOperation(
 *   { operation: '新增用户', operateType: 'add', outside: false, name: '用户管理' },
 *   { dataIdKey: 'id' }
 * )
 */
export const LogOperation = (data: Record<string, any>, dataKey: Record<string, any> = {}) => {
    return SetMetadata('logOperation', { data, dataKey });
};
